package com.yytek.common.core.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yytek.common.core.annotation.Excel;
import com.yytek.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 设备对象
 *
 */
@ApiModel("设备管理对象")
@Data
public class Device extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 设备id */
    @ApiModelProperty("设备id")
    private String iotId;

    /** 所属产品ID */
    @Excel(name = "所属产品ID")
    @ApiModelProperty("所属产品ID")
    private Long productId;

    /** 所属产品名称 */
    @Excel(name = "所属产品名称")
    @ApiModelProperty("所属产品名称")
    private String productName;

    /** 设备名称 */
    @Excel(name = "设备名称")
    @ApiModelProperty("设备名称")
    private String deviceName;

    /** 设备状态(0-禁用 1-启用) */
    @Excel(name = "设备状态(0-禁用 1-启用)")
    @ApiModelProperty("设备状态(0-禁用 1-启用)")
    private Integer deviceStatus;

    /** 连接状态(1-未激活 2-在线 3-离线) */
    @Excel(name = "连接状态(1-未激活 2-在线 3-离线)")
    @ApiModelProperty("连接状态(1-未激活 2-在线 3-离线)")
    private Integer connectStatus;

    /** 节点类型(1-网关设备 2-网关子设备 3-直连设备) */
    @Excel(name = "节点类型(1-网关设备 2-网关子设备 3-直连设备)")
    @ApiModelProperty("节点类型(1-网关设备 2-网关子设备 3-直连设备)")
    private Integer nodeType;

    /** 协议类型 */
    @Excel(name = "协议类型")
    @ApiModelProperty("协议类型")
    private String protocol;

    /** 分组id */
    @Excel(name = "分组id")
    @ApiModelProperty("分组id")
    private Long groupId;

    /** 项目id */
    @Excel(name = "项目id")
    @ApiModelProperty("项目id")
    private Long projectId;

    /** 设备连接ip和端口 */
    @Excel(name = "设备连接ip和端口")
    @ApiModelProperty("设备连接ip和端口")
    private String ip;

    /** 最后一次上线时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次上线时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("最后一次上线时间")
    private Date lastTime;

    /** 激活时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("激活时间")
    private Date activeTime;

    /** 密码 */
    @Excel(name = "密码")
    @ApiModelProperty("密码")
    private String password;

    /** 加盐 */
    @Excel(name = "加盐")
    @ApiModelProperty("加盐")
    private String salt;

    /** 连接设备的密钥 */
    @Excel(name = "连接设备的密钥")
    @ApiModelProperty("连接设备的密钥")
    private String secKey;

}
